import path from 'path';
import url from 'url';
import { startsWith as _startsWith } from 'lodash-es';
import { merge as mergeAny } from 'merge-anything';

import { systemConfig } from '../system.js';

async function fnImport(path, defaultValue) {
    try {
        const data = await import(path);
        return data;
    } catch (err) {
        return defaultValue;
    }
}
let configPath = url.pathToFileURL(path.resolve(systemConfig.appDir, 'config', 'app.js'));
let importConfig = await fnImport(configPath, {});

const appConfig = mergeAny(
    {
        // 应用名称
        appName: '易接口',
        appNameEn: 'yiapi',
        // 加密盐
        salt: 'yiapi-123456.',
        // 过期时间
        expires: '7d',
        // 监听端口
        port: 3000,
        // 监听主机
        host: '127.0.0.1',
        // 默认开发管理员密码
        devPassword: 'dev123456!@#',
        // 接口超时 3 分钟
        apiTimeout: 3 * 60 * 1000,
        // 自由通行的接口，不需要鉴权
        freeApis: ['/', '/docs', '/docs/**'],
        // 白名单接口，需要鉴权
        whiteApis: [
            //
            '/admin/login',
            '/user/login',
            '/user/register'
        ]
    },
    importConfig.appConfig
);

export { appConfig };
